/**
 * 更新雷达图形状
 * @param {string} value - 形状值（如'polygon'、'circle'等）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarShape(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].shape = value;
    return currentOptions;
}

/**
 * 更新雷达图分割段数
 * @param {string|number} value - 分割段数
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarSplitNumber(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].splitNumber = parseInt(value, 10);
    return currentOptions;
}

/**
 * 更新雷达图轴线颜色
 * @param {string} value - 颜色值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarAxisLineColor(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].axisLine = currentOptions.radar[0].axisLine || {};
    currentOptions.radar[0].axisLine.lineStyle = currentOptions.radar[0].axisLine.lineStyle || {};
    currentOptions.radar[0].axisLine.lineStyle.color = value;
    return currentOptions;
}

/**
 * 更新雷达图轴线透明度
 * @param {string|number} value - 透明度值（0-100之间，将转换为0-1范围）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarAxisLineOpacity(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].axisLine = currentOptions.radar[0].axisLine || {};
    currentOptions.radar[0].axisLine.lineStyle = currentOptions.radar[0].axisLine.lineStyle || {};

    // 处理透明度值：将0-100范围转换为0-1，超出范围则限制在0或1，无效值默认为1
    const parsedValue = parseFloat(value);
    const validOpacity = isNaN(parsedValue)
        ? 1
        : Math.max(0, Math.min(1, parsedValue / 100));

    currentOptions.radar[0].axisLine.lineStyle.opacity = validOpacity;
    return currentOptions;
}

/**
 * 更新雷达图分割线可见性
 * @param {string} value - 是否显示，'true'表示显示
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarSplitLineShow(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].splitLine = currentOptions.radar[0].splitLine || {};
    currentOptions.radar[0].splitLine.show = value === 'true';
    return currentOptions;
}

/**
 * 更新雷达图分割线颜色
 * @param {string} value - 颜色值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarSplitLineColor(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].splitLine = currentOptions.radar[0].splitLine || {};
    currentOptions.radar[0].splitLine.lineStyle = currentOptions.radar[0].splitLine.lineStyle || {};
    currentOptions.radar[0].splitLine.lineStyle.color = value;
    return currentOptions;
}
/**
 * 更新雷达图分割线透明度
 * @param {string|number} value - 透明度值（0-100之间，将转换为0-1范围）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarSplitLineOpacity(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].splitLine = currentOptions.radar[0].splitLine || {};
    currentOptions.radar[0].splitLine.lineStyle = currentOptions.radar[0].splitLine.lineStyle || {};

    // 处理透明度值：将0-100范围转换为0-1，超出范围则限制在0或1，无效值默认为1
    const parsedValue = parseFloat(value);
    const validOpacity = isNaN(parsedValue)
        ? 1
        : Math.max(0, Math.min(1, parsedValue / 100));

    currentOptions.radar[0].splitLine.lineStyle.opacity = validOpacity;
    return currentOptions;
}

/**
 * 更新雷达图指示器
 * @param {string} value - 指示器配置的JSON字符串
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarIndicator(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    try {
        currentOptions.radar[0].indicator = JSON.parse(value);
    } catch (e) {
        console.error('解析雷达图指示器失败:', e);
    }
    return currentOptions;
}

/**
 * 更新雷达图指示器名称可见性
 * @param {string} value - 是否显示，'true'表示显示
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarNameShow(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].name = currentOptions.radar[0].name || {};
    currentOptions.radar[0].name.show = value === 'true';
    return currentOptions;
}

/**
 * 更新雷达图指示器名称颜色
 * @param {string} value - 颜色值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarNameColor(value, currentOptions) {
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    currentOptions.radar[0].name = currentOptions.radar[0].name || {};
    currentOptions.radar[0].name.textStyle = currentOptions.radar[0].name.textStyle || {};
    currentOptions.radar[0].name.textStyle.color = value;
    return currentOptions;
}
/**
 * 更新雷达图的显示半径（只修改半径数组的第二项）
 * @param {number} value - 外半径百分比值（0-100）
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarRadius(value, currentOptions) {
    // 验证输入值有效性，设置合理范围（10%-90%）
    const validOuterRadius = Math.max(10, Math.min(90, parseInt(value) || 75));
    const outerRadiusStr = `${validOuterRadius}%`;

    // 处理雷达图配置
    if (currentOptions.radar) {
        // 确保radius是数组格式 [内半径, 外半径]
        if (!Array.isArray(currentOptions.radar.radius)) {
            // 如果不是数组，初始化默认内半径"0%"
            currentOptions.radar[0].radius = ["0%", outerRadiusStr];
        } else {
            // 只修改数组的第二项（外半径）
            currentOptions.radar.radius[1] = outerRadiusStr;
            // 确保数组至少有两项，不足则补全
            if (currentOptions.radar.radius.length < 2) {
                currentOptions.radar.radius.push(outerRadiusStr);
            }
        }
    } else if (currentOptions.series && Array.isArray(currentOptions.series)) {
        // 处理系列中的雷达图配置
        currentOptions.series.forEach(series => {
            if (series.type === 'radar') {
                if (!Array.isArray(series.radius)) {
                    // 初始化数组格式
                    series.radius = ["0%", outerRadiusStr];
                } else {
                    // 只修改数组的第二项
                    series.radius[1] = outerRadiusStr;
                    if (series.radius.length < 2) {
                        series.radius.push(outerRadiusStr);
                    }
                }
            }
        });
    } else {
        // 初始化基础雷达配置，使用数组格式
        currentOptions.radar = {
            radius: ["0%", outerRadiusStr]
        };
    }

    return currentOptions;
}
/**
 * 更新雷达图轴线宽度
 * @param {number} value - 线宽数值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarAxisLineStyleWidth(value, currentOptions) {
    // 确保雷达图配置存在，不存在则初始化基础结构
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    // 确保轴线配置对象存在
    currentOptions.radar[0].axisLine = currentOptions.radar[0].axisLine || {};
    // 确保线样式配置对象存在
    currentOptions.radar[0].axisLine.lineStyle = currentOptions.radar[0].axisLine.lineStyle || {};
    // 更新线宽（确保为有效数字，默认为1）
    currentOptions.radar[0].axisLine.lineStyle.width = typeof value === 'number' && value >= 0
        ? value
        : 1;
    return currentOptions;
}
/**
 * 更新雷达图分割线宽度
 * @param {number} value - 线宽数值
 * @param {Object} currentOptions - 当前图表配置选项
 * @returns {Object} 更新后的图表配置选项
 */
function updateRadarSplitLineStyleWidth(value, currentOptions) {
    // 确保雷达图配置存在，不存在则初始化基础结构
    if (!currentOptions.radar) {
        currentOptions.radar = [{ indicator: [] }];
    }
    // 确保分割线配置对象存在
    currentOptions.radar[0].splitLine = currentOptions.radar[0].splitLine || {};
    // 确保分割线样式配置对象存在
    currentOptions.radar[0].splitLine.lineStyle = currentOptions.radar[0].splitLine.lineStyle || {};
    // 更新线宽（确保为有效非负数字，默认为1）
    currentOptions.radar[0].splitLine.lineStyle.width = typeof value === 'number' && value >= 0
        ? value
        : 1;
    return currentOptions;
}